package com.cloud.api.domain.tsp;

import com.cloud.api.validgroup.ValidateGroupSelectVin;
import com.cloud.mybatis.domain.PageModelNew;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;

import jakarta.validation.constraints.NotEmpty;
import java.time.LocalDateTime;
import java.util.List;

@Data
@Accessors
@Schema(name = "QueryVehicle")
public class QueryVehicle extends PageModelNew {

    @Schema(description = "vin")
    private String vin;

    @Schema(description = "TBOX终端编号")
    private String tboxNumber;

    @Schema(description = "SIM卡号")
    private String simNumber;

    @Schema(description = "组织机构id")
    private String deptId;

    @Schema(description = "数据权限",hidden = true)
    private Integer dataScope;

    @Schema(description = "部门id",hidden = true)
    private List<String> deptIds;

    @Schema(description = "用于实时在线车辆查询",hidden = true)
    private List<String> redisKeys;

    @Schema(description = "用于车辆位置查询vin,查询全部（all）,在线（online）,离线（offline）")
    @NotEmpty(message = "{validation.vehicle.range}",groups = ValidateGroupSelectVin.class)
    private String range;

    @Schema(description = "开始时间",hidden = true)
    private LocalDateTime startTime;

    @Schema(description = "结束时间",hidden = true)
    private LocalDateTime endTime;

    @Schema(description = "doris映射名称",hidden = true)
    private String dataSource;
}
